[新機能]dbt CloudのAuto-exposures機能でdbtのModelと紐づくTableauダッシュボードを自動的にexposureとして登録しリネージが可視化できるようになりました
さがらです。
dbt Cloudの新機能として、Auto-exposures機能でdbtのModelと紐づくTableauダッシュボードを自動的にexposureとして登録しリネージが可視化できるようになりました。(2024年10月7日時点ではプレビュー機能で、Versionless及びdbt Cloud Enterpriseエディションで利用可能です。)
ドキュメントは下記となります。本記事では、この機能を実際に試してみたのでその内容をまとめてみます。
事前準備
dbtで定義したModelから作られたSnowflakeのテーブルに対して、Tableau Cloud上でライブ接続でダッシュボードを作っておきます。
このダッシュボードがdbtのExposureとして自動登録されるかを確認していきます。
注意事項
2024年10月8日に試した際は、抽出対象のTableauのCollection名(プロジェクト名とほぼ同義)が日本語だと、Tableauダッシュボードのexposureがうまく生成されない、という事象に私は遭遇しました。今後のアップデートで改善される可能性はありますが、お試しの際はご注意ください…
Tableau CloudでのPersonal Access Tokensの取得
まず、対象のTableau Cloud内でPersonal Access Tokens(個人用アクセストークン)を有効化しておきます。
ログインしているユーザーのマイアカウントの設定
から、トークンを生成します。
表示されたトークン名とシークレットを忘れずにコピーしましょう。
また、使用しているTableau Cloudの「サーバーURL(下図の赤枠左)」と「サイト名(下図の赤枠右)」確認しておきます。
dbt Cloudでの設定
次にdbt Cloudでの設定に移ります。
まず、対象のdbt projectのDashboardからSettings
を押します。
Exposuresの設定欄があるため、+ Add integration
を押します。
前工程で取得した各情報を入力し、Continue
を押します。
Tableau Cloudのプロジェクトの一覧が表示されるので、メタデータを取得してExposuresを生成したいプロジェクトを選択し、右下のSave
を押します。
画面の一番上に下図のように表示されたら設定は完了です。この後一度、対象のdbt projectのPRODのEnvironmentでジョブを実行しましょう。
dbt Explorerから確認してみる
dbt Explorer上で見ると、Exposures
にTableauのダッシュボードが追加されていることがわかります。
クリックして内容を確認すると、下図のようにどのModelを参照して作られているかのリネージや、各種メタデータの内容を閲覧できます。
ポイントとしては、各ModelとのリネージはTableauのデータソースタブでJOIN・リレーションシップが定義されたすべてのModelと紐づくのではなく、ダッシュボード上の各ワークシートで使われているModelとのリネージが生成される仕様となっています。
また、全体のリネージとしてみるとこのように表示されます。最近のアップデートでdbt Explorerで各Modelのクエリ回数が確認できるようになったので、この機能と併せて使うとTableauダッシュボードの利用状況の確認にも使えそうです!
Exposureの更新方法について
現在は1日1回の頻度で自動更新が行われるようです。(下図はドキュメントより)
今後は、dbt Cloudのジョブ経由でも更新できるようになるみたいですが、2024年10月7日時点では未定です。(下図はドキュメントより)
最後に
dbt Cloudの新機能として、Auto-exposures機能でdbtのModelと紐づくTableauダッシュボードを自動的にexposureとして登録しリネージが可視化できるようになったので、試してその内容をまとめてみました。
dbt Explorerがサードパーティのデータカタログにも負けない機能を備えてきているので、嬉しいですね!